1. Technical Field
The present invention relates to the field of computer systems. In one aspect, the present invention relates to the dynamic management of services in a distributed computer network environment.
2. Description of Related Art
In conventional computer network applications, particularly telecommunication networks (e.g., high-speed or broadband access to the Internet), it is common for an application running at a particular computer to interact with or use another application that may be located at the same computer or at a different computer connected to the network. It is also common for services to be provided to subscribers using client-server relationships between the subscriber and provider. In addition, technology in the computer area is subject to rapid change, both in the hardware and software technologies that are continually introduced. As a consequence, computer applications in a network environment are often faced with changes in the network environment, whether they be changes on the subscriber side, changes in software applications used by a program or changes in hardware (including changing the machines or connections used to run services in the network environment). The challenge of adapting to new technologies resides not only with the end user, client or agent side, but also with the network service provider. For example, an Internet Service Provider (“ISP”) experiences changes in the hardware and software technologies that must be supported, in the expectations of the subscribers, and in the need for service enhancements to respond to competitive pressures. Where the number of resource users (e.g., clients or agents) is unpredictable, it can adversely affect the performance of the resource (e.g., servers). In addition, where the locations of agents, servers and/or services to change over time, it becomes relatively difficult for agents to access services after relocation of such services within a conventional client/server based computer system. The addition of new services also presents challenges of notifying agents of their availability. Likewise, the large volume and unpredictable nature of the agent activity within a network can compound such problems. Conventional client/server based computer systems are unable to track the dynamic location and relocation of services both externally and within the computer system. Managing distributed state is a particular challenge to this imperative, since the services need to be able to rely on certain facts about the agent state, but also need to avoid the overhead of storing per-agent state at the service end.
Further limitations and disadvantages of conventional systems will become apparent to one of skill in the art after reviewing the remainder of the present application with reference to the drawings and detailed description which follow.